using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("GameDbfIndex")]
	public class GameDbfIndex : MonoClass
	{
		public List<string> m_allCardIds => method_3<Class272>("m_allCardIds")?.method_25();

		public List<int> m_allCardDbIds => method_3<Class270<int>>("m_allCardDbIds")?.method_25();

		public List<string> m_collectibleCardIds => method_3<Class272>("m_collectibleCardIds")?.method_25();

		public List<int> m_collectibleCardDbIds => method_3<Class270<int>>("m_collectibleCardDbIds")?.method_25();

		public int m_collectibleCardCount => method_2<int>("m_collectibleCardCount");

		public GameDbfIndex(IntPtr address, string className)
			: base(address, className)
		{
		}

		public GameDbfIndex(IntPtr address)
			: this(address, "GameDbfIndex")
		{
		}

		public void Initialize()
		{
			method_8("Initialize");
		}

		public void OnCardTagAdded(CardTagDbfRecord cardTagRecord)
		{
			method_8("OnCardTagAdded", cardTagRecord);
		}

		public void OnCardDiscoverStringAdded(CardDiscoverStringDbfRecord cardDiscoverStringRecord)
		{
			method_8("OnCardDiscoverStringAdded", cardDiscoverStringRecord);
		}

		public int GetCardTagValue(int cardDbId, GAME_TAG tagId)
		{
			return method_11<int>("GetCardTagValue", new object[2] { cardDbId, tagId });
		}

		public void OnCardAdded(CardDbfRecord cardRecord)
		{
			method_8("OnCardAdded", cardRecord);
		}

		public void OnFixedRewardMapAdded(FixedRewardMapDbfRecord record)
		{
			method_8("OnFixedRewardMapAdded", record);
		}

		public void OnFixedRewardActionAdded(FixedRewardActionDbfRecord record)
		{
			method_8("OnFixedRewardActionAdded", record);
		}

		public void OnDeckRulesetRuleSubsetAdded(DeckRulesetRuleSubsetDbfRecord record)
		{
			method_8("OnDeckRulesetRuleSubsetAdded", record);
		}

		public void OnSubsetCardAdded(SubsetCardDbfRecord record)
		{
			method_8("OnSubsetCardAdded", record);
		}

		public void OnDeckRulesetRuleAdded(DeckRulesetRuleDbfRecord record)
		{
			method_8("OnDeckRulesetRuleAdded", record);
		}

		public CardDbfRecord GetCardRecord(string cardId)
		{
			return method_14<CardDbfRecord>("GetCardRecord", new object[1] { cardId });
		}

		public CardSetDbfRecord GetCardSet(TAG_CARD_SET cardSetId)
		{
			return method_14<CardSetDbfRecord>("GetCardSet", new object[1] { cardSetId });
		}

		public string GetCardDiscoverString(string cardId)
		{
			return method_13("GetCardDiscoverString", cardId);
		}

		public void CachePlaceholderRecord()
		{
			method_8("CachePlaceholderRecord");
		}

		public int GetCollectibleCardCount()
		{
			return method_11<int>("GetCollectibleCardCount", Array.Empty<object>());
		}

		public List<string> GetAllCardIds()
		{
			return method_14<Class272>("GetAllCardIds", Array.Empty<object>())?.method_25();
		}

		public List<int> GetAllCardDbIds()
		{
			return method_14<Class270<int>>("GetAllCardDbIds", Array.Empty<object>())?.method_25();
		}

		public List<string> GetCollectibleCardIds()
		{
			return method_14<Class272>("GetCollectibleCardIds", Array.Empty<object>())?.method_25();
		}

		public List<int> GetCollectibleCardDbIds()
		{
			return method_14<Class270<int>>("GetCollectibleCardDbIds", Array.Empty<object>())?.method_25();
		}

		public List<FixedRewardMapDbfRecord> GetFixedRewardMapRecordsForAction(int actionId)
		{
			return method_14<Class271<FixedRewardMapDbfRecord>>("GetFixedRewardMapRecordsForAction", new object[1] { actionId })?.method_25();
		}

		public List<FixedRewardActionDbfRecord> GetFixedActionRecordsForType(FixedActionType type)
		{
			return method_14<Class271<FixedRewardActionDbfRecord>>("GetFixedActionRecordsForType", new object[1] { type })?.method_25();
		}

		public List<DeckRulesetRuleDbfRecord> GetRulesForDeckRuleset(int deckRulesetId)
		{
			return method_14<Class251<DeckRulesetRuleDbfRecord>>("GetRulesForDeckRuleset", new object[1] { deckRulesetId })?.method_25();
		}
	}
}
